package com.unitd.base.frame.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;

/**
 * 自定义的异常代码信息类
 *
 * @author Hudan
 * @version 1.0
 * @filename ResultEnum.java
 * @copyright www.unitd.com
 * @date 2020-06-25
 */
@Getter
@NoArgsConstructor
@AllArgsConstructor
public enum ResultEnum implements BaseEnum {

    /**
     * 系统处理成功/错误代码及说明
     */
    SUCCESS("00000000", "成功"),
    FAIL("11111111", "失败"),

    SYSTEM_ERROR("500", "系统错误"),
    PARAM_ERROR("400", "参数校验错误异常"),
    PARAM_VALIDATE_ERROR("401", "参数校验错误异常"),

    DB_TYPE_EMPTY_ERROR("10000100", "数据源类型不存在,请联系管理员配置数据源!"),

    MOBILE_NUM_ERROR("20002027", "手机号码不合法,请重新输入!"),
    SMS_SEND_ERROR("20002028", "发送短信失败,请稍后重试!"),
    SMS_DAY_LIMIT_ERROR("20002029", "今日获取短信已达上限,请明日再试!"),
    SMS_MINUTE_ONCE_ERROR("20002030", "一分钟之内只能发送一次短信!"),
    USER_ORDER_NOT_EXIST_ERROR("20002057", "您还没有购买过此课程,无权访问当前页面,请先购买!"),
//
//
//    USER_LOGIN_ERROR("10000402", "未登录,请登录~"),
//    MBL_ERROR("10000403", "手机号码不正确"),
//    CAPTCHA_ERROR("10000405", "短信验证码不正确"),
//    REPEAT_REGISTER_ERROR("10000406", "已注册, 请登陆"),
//    SMS_ERROR("10000407", "短信发送失败, 请稍后再试"),
//    SMS_TIME_ERROR("10000408", "超过最大发送次数, 请明天再试"),
//    PWD_ERROR("10000409", "用户或密码错误"),
//    USER_STATUS_ERROR("10000410", "禁止登录"),
//    SYSTEM_SET_VLAUE_ERROR("10000411", "系统参数配置有误,请联系系统管理员"),
//    PLATFORM_NOT_SUPPORT("10000412", "平台不支持"),
//    STUDENT_PHONE_NOT_REGISTER_ERROR("10000413", "该号码未注册"),
//    STUDENT_PHONE_NOT_MATCH_ERROR("10000414", "需要修改密码的用户手机号于当前登录用户不匹配,请确认!"),
//    STUDENT_PASSWORD_MODIFY_ERROR("10000415", "修改密码错误"),

    FILE_EMPTY_ERROR("10000511", "上传文件不能为空,请先上传~"),
    FILE_SUFFIX_ERROR("10000512", "对不起,上传的文件格式不正确,请重新上传,谢谢~"),
    FILE_SIZE_ERROR("10000513", "对不起,图片太大,请上传2M以内的图片,谢谢~"),
    FILE_UPLOAD_ERROR("10000514", "文件上传失败,请重新上传~"),

    EXPRESS_COMPANY_NOT_EXIST("10000515", "快递公司{0}不存在!"),
    ;
    private String code;
    private String message;

    /**
     * 根据枚举名称获取相应的枚举对象信息的显示值
     *
     * @param code 枚举的key
     * @return 枚举对象的显示值
     */
    public static String getValue(String code) {

        ResultEnum[] enumAry = ResultEnum.values();

        for (ResultEnum resultEnum : enumAry) {
            if (resultEnum.getCode().equals(code)) {
                return resultEnum.getMessage();
            }
        }
        return null;
    }
}